The present invention relates to the field of data communication systems. In particular, the present invention relates to a system for transmitting data between a source and a destination.
Various types of systems are utilized to transmit information between a source and a destination. Existing systems use wire-based or cable-based communication links to transmit information between various sources and destinations. These communication links may become problematic when extended over long distances. For example, the use of cable-based communication links may not be feasible between different continents or other geographic areas not easily serviced by cable-based communication links.
In many situations, the costs associated with installing cable-based communication links is prohibitive. For example, in remote areas without any type of existing communication system, it may be too expensive to install cable-based communication links. If additional transmission capacity is needed on existing cable-based communication links, it may be too expensive to install additional cables across oceans, mountains, and other geographic obstacles. Additionally, in locations requiring communication links on a temporary basis, it may not be feasible to install cable-based communication links for the temporary requirements.
Thus, wire-based or cable-based communication links encounter problems with a variety of obstacles, including land rights, river crossings, mountainous terrain, lakes, and oceans. Even without geographic obstacles, remote areas or areas separated by a significant distance may not be serviced economically using wire-based or cable-based communication links. Therefore, solutions must be developed to overcome these obstacles and permit communication links having the necessary bandwidth for communicating data between two locations.
Satellite transmission systems and other wireless systems provide communication links that do not require the installation of wires or cables across geographic obstacles. However, satellite communication links have a high latency due to the significant distances that the data is transmitted. This high latency may cause problems with the flow of data using certain transmission protocols. For example, the flow of Internet Protocol (IP) data is reduced by the source if the source detects significant delays in receiving acknowledgments from the destination. Typically, a significant delay in receiving acknowledgments indicates congestion on the communication link. Therefore, using a high-latency satellite communication link to transmit IP data is likely to cause the data source to reduce the flow of data, even if the communication link is not congested.
Additionally, asymmetrical communication links may cause problems with the transmission of certain types of data. An asymmetrical communication link has a different latency in each direction (e.g., high-latency communication in one direction and low latency communication in the opposite direction). Alternatively, an asymmetrical communication link may have different bandwidths or different communication rates in opposite directions. This asymmetry can cause problems with the flow of data using certain transmission protocols. For example, a source of Internet Protocol (IP) data reduces the outgoing flow of IP data if the source detects significant delays in receiving acknowledgments from the destination. Variations in delays in receiving acknowledgments over a low bandwidth incoming link could cause the source to reduce the flow of data over the outgoing link, even though the outgoing link has adequate capacity to handle the data flow.
Problems may also occur in transmission systems that have high-bandwidth communication links. On high-bandwidth communication links, if a large amount of data is sent and the sequence numbers (or other data identifiers) are repeated, a delayed acknowledgment of a previously sent message may be identified as a new data message. For example, the Internet Protocol uses sequence numbers in each packet which identify the packet""s position in the overall data stream. The sequence numbers are incremented to a fixed limit, and then start again at zero. If the sequence numbers are used up quickly, as is possible in a very high bandwidth link, it is possible that duplicate sequence numbers are active within the link at the same time. At the receiving end, when the data streams are reassembled, the packets with duplicate sequence numbers may be assigned to the wrong data stream. It is therefore desirable to provide a system for efficiently transmitting data across high-latency communication links and asymmetrical communication links. Additionally, it is desirable to provide a system for efficiently and accurately transmitting data across high-bandwidth communication links.
The present invention provides a mechanism for transmitting data between communication devices. Various embodiments of the invention may be used to transmit data across high latency communication links, asymmetrical communication links, and other communication links that typically provide obstacles for transmitting data such as Internet Protocol (IP) data. Additionally, embodiments of the invention avoid problems that occur on high-bandwidth communication links when a large amount of data is sent, creating the possibility that the data identifiers will be repeated. Specific embodiments of the invention provide mechanisms for generating an acknowledgment signal that causes the data source to believe that data has been received by the destination. These acknowledgment signals may actually be generated prior to receipt of the data at the destination. These early acknowledgment signals prevent the data source from reducing its data rate due to the high latency or asymmetry of the communication link. Additionally, these early acknowledgment signals avoid the problems caused by repeated identifiers on high-bandwidth communication links.
An embodiment of the invention provides a system for transmitting data over a high latency communication link. The system transmits a data packet from a first device to a second device over a low latency communication link. The second device acknowledges receipt of the data packet to the first device over the low latency communication link. The second device then transmits the data packet over the high latency communication link.
In a particular embodiment of the invention, the high latency communication link may be a satellite communication link.
In another embodiment of the invention, the low latency communication link may be a Transmission Control Protocol/Internet Protocol (TCP/IP) communication link.
Other embodiments of the invention acknowledge receipt of the data packet before completing transmission of the data packet over the high latency communication link.
Particular embodiments of the invention are capable of transmitting data over a high bandwidth communication link or an asymmetrical communication link.